package com.supplychain.scm.core.dinger.config;

import com.github.jaemon.dinger.DingerSender;
import com.github.jaemon.dinger.core.entity.DingerRequest;
import com.github.jaemon.dinger.core.entity.DingerResponse;
import com.github.jaemon.dinger.core.entity.enums.DingerType;
import com.github.jaemon.dinger.core.entity.enums.MessageSubType;

import java.util.List;

/**
 * @author liyang
 * @version 1.0.0
 * @ClassName IDingerSender
 * @createTime 10:41:00 2022/11/23
 */
public interface IDingerSender extends DingerSender {

    DingerResponse send(MessageSubType messageSubType, DingerRequest request, List<Class<? extends IDingerProperties>> dingerPropertiesClass,boolean defaultRoot);

    DingerResponse send(DingerType dingerType, MessageSubType messageSubType, DingerRequest request,List<Class<? extends IDingerProperties>> dingerPropertiesClass,boolean defaultRoot);

    DingerResponse send(MessageSubType messageSubType, DingerRequest request, Class<? extends IDingerProperties>[] dingerPropertiesClass,boolean defaultRoot);

    DingerResponse send(DingerType dingerType, MessageSubType messageSubType, DingerRequest request,Class<? extends IDingerProperties>[] dingerPropertiesClass,boolean defaultRoot);
}
